package exception;

/**
 * @author liyang
 * @version 1.0
 * @package exception
 * @file TryCatchDemo.java
 * @description
 * @time 2024-03-31 11:23
 */
/*
try catch快捷键：ctrl+alt+t

 */
public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了");
        try {
//            String line = null;
           String line = "a";
//            String line = "abc";
            System.out.println(line.length());
            System.out.println(line.charAt(1));
            //charAt: 获取位置1上的字符!!!
            System.out.println(Integer.parseInt(line));
            //try语句块中出错代码以下的内容都不会被执行
            System.out.println("!!!!!!!!!!!");
//        }catch(NullPointerException e){
//            //处理上面try语句块中出现的空指针的解决办法
//            System.out.println("出现了空指针并且解决了");
//        //可以定义多个catch来处理不同的异常并解决
//        }catch(StringIndexOutOfBoundsException e){
//            System.out.println("出现了字符串下标越界，并解决了");
//        }
            //当多个异常解决办法相同时，可以合并到一个catch中处理
        }catch(NullPointerException | StringIndexOutOfBoundsException e){
            System.out.println("出现空指针或下标越界的同一处理");
            //当捕获的是一个超类型异常时，凡抛出其任何子类型异常都可以被其处理
        }catch(Exception e){
            System.out.println("反正出了个错!");
        }
        System.out.println("程序结束了");
    }
}
